Arquivos esperados pelo painel para assinatura do QZ Tray:

- digital-certificate.txt
- private-key.pem

Coloque os dois arquivos exatamente nesta pasta:

- secure/qz/digital-certificate.txt
- secure/qz/private-key.pem

Como o painel usa esses arquivos:

- api/qz_certificate.php le o conteudo de digital-certificate.txt
- api/qz_sign.php assina os requests com private-key.pem usando SHA512

Sem esses arquivos:

- o QZ Tray ainda conecta
- a lista de impressoras pode carregar
- mas o QZ pode abrir a janela pedindo Allow / Remember this decision

Com esses arquivos configurados corretamente:

- o request deixa de chegar como "anonymous request"
- o QZ pode confiar na origem conforme o certificado instalado
- a impressao automatica fica pronta para operar sem prompt, dependendo da confianca da estacao

Fluxo recomendado:

1. Desenvolvimento / teste rapido
- voce pode usar o QZ Tray em modo demo e permitir manualmente no prompt do QZ
- isso e suficiente para validar conexao, listar impressoras e testar impressao

2. Producao / sem prompt
- gere ou baixe seu digital-certificate.txt e private-key.pem no portal do QZ Tray
- envie os dois arquivos para esta pasta no servidor
- confirme no painel que o status do QZ nao mostra mais o aviso sobre assinatura ausente

Referencia oficial do QZ:

- https://qz.io/docs/signing-examples

Trecho importante da documentacao oficial:

- o arquivo digital-certificate.txt deve ficar acessivel ao navegador
- o private-key.pem deve ficar somente no servidor
- o fluxo recomendado e server-side signing

Observacoes:

- o private-key.pem nunca deve ficar em pasta publica
- esta pasta secure/qz deve permanecer fora de acesso direto do navegador
- se trocar o certificado, substitua os dois arquivos em conjunto

